# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.1019.4.6+1.1003.38.3 -> 1.1019.4.7
# Makefile 1.190.1.40 -> 1.221
# arch/ia64/kernel/setup.c 1.11.3.2 -> 1.16
# include/linux/fs.h 1.69.1.16 -> 1.75.1.1
# arch/i386/config.in 1.43.1.2 -> 1.46
# include/asm-ia64/processor.h 1.16.3.1 -> 1.22
# arch/ia64/config.in 1.13.5.2 -> 1.24
# fs/Makefile 1.16.1.3 -> 1.19.1.1
# arch/ia64/ia32/sys_ia32.c 1.9.1.26 -> 1.23
# kernel/sched.c 1.30.1.3 -> 1.33.1.1
# Documentation/Configure.help 1.162.1.11 -> 1.168
# arch/ia64/kernel/perfmon.c 1.7.1.16 -> 1.21
#
diff -Nru a/Documentation/Configure.help b/Documentation/Configure.help
--- a/Documentation/Configure.help Wed Oct 8 09:05:55 2003
+++ b/Documentation/Configure.help Wed Oct 8 09:05:55 2003
@@ -18890,20 +18890,6 @@
down the system. Until then, you can cat it, and see output when
a button is pressed.
-CONFIG_ACPI_BATTERY
- This driver adds support for battery information through
- /proc/acpi/battery. If you have a mobile system with a battery,
- say Y.
-
-CONFIG_ACPI_FAN
- This driver adds support for ACPI fan devices, allowing user-mode
- applications to perform basic fan control (on, off, status).
-
-CONFIG_ACPI_PROCESSOR
- This driver installs ACPI as the idle handler for Linux, and uses
- ACPI C2 and C3 processor states to save power, on systems that
- support it.
-
ACPI AC Adapter
CONFIG_ACPI_AC
This driver adds support for the AC Adapter object, which indicates
@@ -18913,65 +18899,18 @@
ACPI Embedded Controller
CONFIG_ACPI_EC
This driver is required on some systems for the proper operation of
- the battery and thermal drivers. If you are compiling for a laptop,
- say Y.
+ the battery and thermal drivers. If you are compiling for a
+ mobile system, say Y.
-ACPI Control Method Battery
-CONFIG_ACPI_CMBATT
- This driver adds support for battery information through
- /proc/acpi/battery. If you have a laptop with a battery, say Y.
+CONFIG_ACPI_PROCESSOR
+ This driver installs ACPI as the idle handler for Linux, and uses
+ ACPI C2 and C3 processor states to save power, on systems that
+ support it.
-ACPI Thermal
CONFIG_ACPI_THERMAL
This driver handles overheating conditions on laptops. It is HIGHLY
recommended, as your laptop CPU may be damaged without it.
-ACPI ASUS/Medion Laptop Extras
-CONFIG_ACPI_ASUS
- This driver provides support for extra features of ACPI-compatible
- ASUS laptops. As some of Medion laptops are made by ASUS, it may also
- support some Medion laptops (such as 9675 for example). It makes all
- the extra buttons generate standard ACPI events that go through
- /proc/acpi/events, and (on some models) adds support for changing the
- display brightness and output, switching the LCD backlight on and off,
- and most importantly, allows you to blink those fancy LEDs intended
- for reporting mail and wireless status.
-
- All settings are changed via /proc/acpi/asus directory entries. Owner
- and group for these entries can be set with asus_uid and asus_gid
- parameters.
-
- More information and a userspace daemon for handling the extra buttons
- at .
-
- If you have an ACPI-compatible ASUS laptop, say Y or M here. This
- driver is still under development, so if your laptop is unsupported or
- something works not quite as expected, please use the mailing list
- available on the above page (acpi4asus-user@lists.sourceforge.net)
-
-ACPI Toshiba Laptop Extras
-CONFIG_ACPI_TOSHIBA
- This driver adds support for access to certain system settings
- on "legacy free" Toshiba laptops. These laptops can be recognized by
- their lack of a BIOS setup menu and APM support.
-
- On these machines, all system configuration is handled through the
- ACPI. This driver is required for access to controls not covered
- by the general ACPI drivers, such as LCD brightness, video output,
- etc.
-
- This driver differs from the non-ACPI Toshiba laptop driver (located
- under "Processor type and features") in several aspects.
- Configuration is accessed by reading and writing text files in the
- /proc tree instead of by program interface to /dev. Furthermore, no
- power management functions are exposed, as those are handled by the
- general ACPI drivers.
-
- More information about this driver is available at
- .
-
- If you have a legacy free Toshiba laptop (such as the Libretto L1
- series), say Y.
Advanced Power Management BIOS support
CONFIG_APM
@@ -26111,11 +26050,13 @@
# Choice: ia64type
Itanium
CONFIG_ITANIUM
- Select your IA64 processor type. The default is Intel Itanium.
+ Select your IA-64 processor type. The default is Intel Itanium.
+ This choice is safe for all IA-64 systems, but may not perform
+ optimally on systems with, say, Itanium 2 or newer processors.
-McKinley
+Itanium 2
CONFIG_MCKINLEY
- Select this to configure for a McKinley processor.
+ Select this to configure for an Itanium 2 (McKinley) processor.
# Choice: ia64system
IA-64 system type
@@ -26172,6 +26113,14 @@
Say Y here to enable machine check support for IA-64. If you're
unsure, answer Y.
+Use PAL_HALT_LIGHT in idle loop
+CONFIG_IA64_PAL_IDLE
+ Say Y here to enable use of PAL_HALT_LIGHT in the cpu_idle loop.
+ This allows the CPU to enter a low power state when idle. You
+ can enable CONFIG_IA64_PALINFO and check /proc/pal/cpu0/power_info
+ to see the power consumption and latency for this state. If you're
+ unsure your firmware supports it, answer N.
+
Disable IA-64 Virtual Hash Page Table
CONFIG_DISABLE_VHPT
The Virtual Hash Page Table (VHPT) enhances virtual address
@@ -26192,12 +26141,31 @@
and restore instructions. It's useful for tracking down spinlock
problems, but slow! If you're unsure, select N.
-Early printk support (requires VGA!)
+Early printk support
CONFIG_IA64_EARLY_PRINTK
- Selecting this option uses the VGA screen for printk() output before
- the consoles are initialised. It is useful for debugging problems
- early in the boot process, but only if you have a VGA screen
- attached. If you're unsure, select N.
+ Selecting this option uses a UART or VGA screen (or both) for
+ printk() output before the consoles are initialised. It is useful
+ for debugging problems early in the boot process, but only if you
+ have a serial terminal or a VGA screen attached. If you're unsure,
+ select N.
+
+Early printk on serial port
+CONFIG_IA64_EARLY_PRINTK_UART
+ Select this option to use a serial port for early printk() output.
+ You must also select either CONFIG_IA64_EARLY_PRINTK_UART_BASE or
+ CONFIG_SERIAL_HCDP. If you select CONFIG_SERIAL_HCDP, early
+ printk() output will appear on the first console device described by
+ the HCDP. If you set CONFIG_IA64_EARLY_PRINTK_UART_BASE, the HCDP
+ will be ignored.
+
+UART base address
+CONFIG_IA64_EARLY_PRINTK_UART_BASE
+ The physical MMIO address of the UART to use for early printk().
+ This overrides any UART located using the EFI HCDP table.
+
+Early printk on VGA
+CONFIG_IA64_EARLY_PRINTK_VGA
+ Select this option to use VGA for early printk() output.
Print possible IA64 hazards to console
CONFIG_IA64_PRINT_HAZARDS
diff -Nru a/Makefile b/Makefile
--- a/Makefile Wed Oct 8 09:05:55 2003
+++ b/Makefile Wed Oct 8 09:05:55 2003
@@ -93,6 +93,7 @@
CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
-fno-strict-aliasing -fno-common
+CFLAGS += -g
ifndef CONFIG_FRAME_POINTER
CFLAGS += -fomit-frame-pointer
endif
@@ -305,8 +306,7 @@
$(CONFIG_SHELL) scripts/Configure -d arch/$(ARCH)/config.in
xconfig: symlinks
- $(MAKE) -C scripts kconfig.tk
- wish -f scripts/kconfig.tk
+ @echo -e "***\n* Sorry, xconfig is broken; use \"make menuconfig\" instead.\n***"
menuconfig: include/linux/version.h symlinks
$(MAKE) -C scripts/lxdialog all
diff -Nru a/arch/ia64/config.in b/arch/ia64/config.in
--- a/arch/ia64/config.in Wed Oct 8 09:05:55 2003
+++ b/arch/ia64/config.in Wed Oct 8 09:05:55 2003
@@ -86,6 +86,32 @@
define_bool CONFIG_KCORE_ELF y # On IA-64, we always want an ELF /proc/kcore.
+define_int CONFIG_FORCE_MAX_ZONEORDER 19
+
+bool 'IA-64 Huge TLB Page Support' CONFIG_HUGETLB_PAGE
+
+if [ "$CONFIG_HUGETLB_PAGE" = "y" ]; then
+ if [ "$CONFIG_MCKINLEY" = "y" ]; then
+ choice ' IA-64 Huge TLB Page Size' \
+ "4GB CONFIG_HUGETLB_PAGE_SIZE_4GB \
+ 1GB CONFIG_HUGETLB_PAGE_SIZE_1GB \
+ 256MB CONFIG_HUGETLB_PAGE_SIZE_256MB \
+ 64MB CONFIG_HUGETLB_PAGE_SIZE_64MB \
+ 16MB CONFIG_HUGETLB_PAGE_SIZE_16MB \
+ 4MB CONFIG_HUGETLB_PAGE_SIZE_4MB \
+ 1MB CONFIG_HUGETLB_PAGE_SIZE_1MB \
+ 256KB CONFIG_HUGETLB_PAGE_SIZE_256KB" 16MB
+ else
+ choice ' IA-64 Huge TLB Page Size' \
+ "256MB CONFIG_HUGETLB_PAGE_SIZE_256MB \
+ 64MB CONFIG_HUGETLB_PAGE_SIZE_64MB \
+ 16MB CONFIG_HUGETLB_PAGE_SIZE_16MB \
+ 4MB CONFIG_HUGETLB_PAGE_SIZE_4MB \
+ 1MB CONFIG_HUGETLB_PAGE_SIZE_1MB \
+ 256KB CONFIG_HUGETLB_PAGE_SIZE_256KB" 16MB
+ fi
+fi
+
bool 'Use PAL_HALT_LIGHT in idle loop' CONFIG_IA64_PAL_IDLE
bool 'SMP support' CONFIG_SMP
tristate 'Support running of Linux/x86 binaries' CONFIG_IA32_SUPPORT
diff -Nru a/arch/ia64/kernel/setup.c b/arch/ia64/kernel/setup.c
--- a/arch/ia64/kernel/setup.c Wed Oct 8 09:05:55 2003
+++ b/arch/ia64/kernel/setup.c Wed Oct 8 09:05:55 2003
@@ -44,6 +44,7 @@
#include
#include
#include
+#include
#ifdef CONFIG_BLK_DEV_RAM
# include
@@ -62,6 +63,7 @@
struct cpuinfo_ia64 *boot_cpu_data;
#else
struct cpuinfo_ia64 _cpu_data[NR_CPUS] __attribute__ ((section ("__special_page_section")));
+ mmu_gather_t mmu_gathers[NR_CPUS];
#endif
unsigned long ia64_cycles_per_usec;
@@ -571,6 +573,8 @@
for (cpu = 1; cpu < NR_CPUS; ++cpu)
memcpy(my_cpu_data->cpu_data[cpu]->cpu_data,
my_cpu_data->cpu_data, sizeof(my_cpu_data->cpu_data));
+ my_cpu_data->mmu_gathers = alloc_bootmem_pages_node(BOOT_NODE_DATA(boot_get_local_cnodeid()),
+ sizeof(mmu_gather_t));
} else {
order = get_order(sizeof(struct cpuinfo_ia64));
my_cpu_data = page_address(alloc_pages_node(numa_node_id(), GFP_KERNEL, order));
@@ -580,9 +584,14 @@
order);
for (cpu = 0; cpu < NR_CPUS; ++cpu)
boot_cpu_data->cpu_data[cpu]->cpu_data[smp_processor_id()] = my_cpu_data;
+
+ my_cpu_data->mmu_gathers = page_address(boot_alloc_pages_node(boot_get_local_cnodeid(),
+ GFP_KERNEL,
+ get_order(sizeof(mmu_gather_t)));
}
#else
my_cpu_data = cpu_data(smp_processor_id());
+ my_cpu_data->mmu_gathers = &mmu_gathers[smp_processor_id()];
#endif
/*
diff -Nru a/fs/Makefile b/fs/Makefile
--- a/fs/Makefile Wed Oct 8 09:05:55 2003
+++ b/fs/Makefile Wed Oct 8 09:05:55 2003
@@ -28,6 +28,7 @@
subdir-$(CONFIG_EXT2_FS) += ext2
subdir-$(CONFIG_CRAMFS) += cramfs
subdir-$(CONFIG_RAMFS) += ramfs
+subdir-$(CONFIG_HUGETLBFS) += hugetlbfs
subdir-$(CONFIG_CODA_FS) += coda
subdir-$(CONFIG_INTERMEZZO_FS) += intermezzo
subdir-$(CONFIG_MINIX_FS) += minix
diff -Nru a/include/asm-ia64/processor.h b/include/asm-ia64/processor.h
--- a/include/asm-ia64/processor.h Wed Oct 8 09:05:55 2003
+++ b/include/asm-ia64/processor.h Wed Oct 8 09:05:55 2003
@@ -168,6 +168,7 @@
__u32 ptce_count[2];
__u32 ptce_stride[2];
struct task_struct *ksoftirqd; /* kernel softirq daemon for this CPU */
+ void *mmu_gathers;
# ifdef CONFIG_PERFMON
unsigned long pfm_syst_info;
# endif
diff -Nru a/include/linux/fs.h b/include/linux/fs.h
--- a/include/linux/fs.h Wed Oct 8 09:05:55 2003
+++ b/include/linux/fs.h Wed Oct 8 09:05:55 2003
@@ -245,7 +245,7 @@
/* First cache line: */
struct buffer_head *b_next; /* Hash queue list */
unsigned long b_blocknr; /* block number */
- unsigned short b_size; /* block size */
+ unsigned int b_size; /* block size */
unsigned short b_list; /* List that this buffer appears */
kdev_t b_dev; /* device (B_FREE = free) */